package com.ruoyi.teaching.api;

import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.teaching.api.domain.CurriculumDto;
import com.ruoyi.teaching.api.domain.FocusStudentDto;
import com.ruoyi.teaching.api.domain.TeachingTraceDto;
import com.ruoyi.teaching.api.factory.RemoteTeachingFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.Mapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;


/**
 * @author Mouyiheng
 */
@FeignClient(contextId = "remoteTeachingService",
        value = ServiceNameConstants.TEACHING_SERVICE, fallbackFactory = RemoteTeachingFallbackFactory.class)
public interface RemoteTeachingService {
    /**
     * 加载教师类型列表
     *
     * @return
     */
    @PostMapping(value = "/trace/reminderTracking")
    R<Void> reminderTracking();

    @PostMapping("/curriculum/getList")
    AjaxResult getList(@RequestBody CurriculumDto curriculumDto);

    /**
     * 新增重点关注
     */
    @PostMapping("/focus/addStudentFocus")
    public AjaxResult addStudentFocus(@RequestBody FocusStudentDto focusStudentDto);

    /**
     * 批量新增教学跟踪
     */
    @PostMapping("/trace/insertTeachingTraceList")
    AjaxResult add(@RequestBody List<TeachingTraceDto> teachingTraces);
}
